sysroot: Ensure we create /boot/loader.%d/entries even if there are no deployments
authorColin Walters <walters@verbum.org>
Thu, 3 Oct 2013 22:31:07 +0000 (18:31 -0400)
committerColin Walters <walters@verbum.org>
Thu, 3 Oct 2013 22:34:24 +0000 (18:34 -0400)
Not doing so breaks things, and we should support this.

src/libostree/ostree-sysroot-deploy.c

index 229bf1514f923375f431960c0192917a98474cc3..f53bc2c2a971288349d4323d28d94adb7abe2722 100644 (file)
@@ -910,11 +910,17 @@ ostree_sysroot_write_deployments (OstreeSysroot     *self,
     {
       int new_bootversion = self->bootversion ? 0 : 1;
       gs_unref_object OstreeBootloader *bootloader = _ostree_sysroot_query_bootloader (self);
+      gs_unref_object GFile *new_loader_entries_dir = NULL;
 
       if (bootloader)
         g_print ("Detected bootloader: %s\n", _ostree_bootloader_get_name (bootloader));
       else
         g_print ("Detected bootloader: (unknown)\n");
+
+      new_loader_entries_dir = ot_gfile_resolve_path_printf (self->path, "boot/loader.%d/entries",
+                                                             new_bootversion);
+      if (!gs_file_ensure_directory (new_loader_entries_dir, TRUE, cancellable, error))
+        goto out;
       
       for (i = 0; i < new_deployments->len; i++)
         {